package generics;
class HoldItem<T>{
    T item;

    public HoldItem(T item) {
        this.item = item;
    }

    public T getItem() {
        return item;
    }
}
class Colored2<T extends HasColor> extends HoldItem<T>{
    Colored2(T item){
        super(item);
    }
    java.awt.Color color(){
        return item.getColor();
    }
}
class Solid2<T extends Dimension & HasColor & Weight> extends ColoredDimension<T>{
    Solid2(T item){
        super(item);
    }
    int weight(){
        return item.weight();
    }
}
public class InheritBounds {
    public static void main(String[] args) {
        Solid2<Bounded> solid2=new Solid2<Bounded>(new Bounded());
        solid2.color();
        solid2.getY();
        solid2.weight();
    }
}
